//package org.example;
//
//
//import com.alibaba.csp.sentinel.slots.block.RuleConstant;
//import com.alibaba.csp.sentinel.slots.block.degrade.DegradeRule;
//import com.alibaba.csp.sentinel.slots.block.degrade.DegradeRuleManager;
//import com.alibaba.csp.sentinel.slots.block.flow.FlowRule;
//import com.alibaba.csp.sentinel.slots.block.flow.FlowRuleManager;
//import com.alibaba.csp.sentinel.slots.block.flow.param.ParamFlowRule;
//import com.alibaba.csp.sentinel.slots.block.flow.param.ParamFlowRuleManager;
//import jakarta.annotation.PostConstruct;
//import org.springframework.stereotype.Component;
//
//import java.util.Arrays;
//
//@Component
//public class SentinelConfig {
//
//    @PostConstruct
//    public void init() {
//        System.out.println("------------流量控制规则------------");
//        FlowRule rule = new FlowRule();
//        rule.setResource("test");
//        rule.setCount(2); // 每秒允许通过的最大请求数量
//        rule.setGrade(RuleConstant.FLOW_GRADE_QPS); // 限流模式：QPS
//        // 加载规则
//        FlowRuleManager.loadRules(Arrays.asList(rule));
//        System.out.println("------------流量控制规则------------");
//
//
//        System.out.println("------------熔断降级规则------------");
//        DegradeRule degradeRule = new DegradeRule();
//        degradeRule.setResource("test");
//        degradeRule.setCount(2); // 统计窗口大小
//        degradeRule.setGrade(RuleConstant.FLOW_GRADE_QPS); // 降级模式：响应时间
//        degradeRule.setStatIntervalMs(1000); // 统计间隔时间（毫秒）
//        degradeRule.setTimeWindow(10); // 时间窗口大小
//        degradeRule.setMinRequestAmount(2); // 最小请求数量
//        // 加载规则
//        DegradeRuleManager.loadRules(Arrays.asList(degradeRule));
//        System.out.println("------------熔断降级规则------------");
//
//
//        System.out.println("------------热点规则------------");
//        ParamFlowRule paramFlowRule = new ParamFlowRule();
//        paramFlowRule.setResource("test");
//        paramFlowRule.setCount(3); // 每秒允许通过的最大请求数量
//        paramFlowRule.setGrade(RuleConstant.FLOW_GRADE_QPS); // 限流模式：QPS
//        paramFlowRule.setParamIdx(1); // 参数索引
//        // 加载规则
//        ParamFlowRuleManager.loadRules(Arrays.asList(paramFlowRule));
//        System.out.println("------------热点规则------------");
//    }
//}
